package cn.bearspark.happening.provider.dao.co;

import cn.bearspark.framework.redis.starter.buffer.hash.HotData;
import cn.bearspark.framework.redis.starter.buffer.hash.un.Cacheable;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 投票的缓存对象
 *
 * @author f
 */
@Data
public class VoteCO implements Cacheable {

    /**
     * 投票的 id
     */
    private Long voteId;

    /**
     * 发布投票的用户的用户 id
     */
    private Long publisherId;

    /**
     * 投票的标题
     */
    private String title;

    /**
     * 投票的描述，可以为 null
     */
    private String desc;

    /**
     * 投票人数
     */
    @HotData
    private Long voteNum;

    /**
     * 投票的类型
     *
     * @see cn.bearspark.happening.enumeration.vote.VoteTypeEnum
     */
    private Integer voteType;

    /**
     * 最大投票数
     */
    private Integer voteLim;

    /**
     * 截止日期
     */
    private LocalDateTime deadline;

    @Override
    public Long id() {
        return voteId;
    }
}
